package com.xhui.vimarket.zkplus.utils;

import java.util.List;

import lombok.Getter;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.IdSpace;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

public class JsUtilsExt extends Window implements IdSpace {
    public static String zul = "/pub_sys/js_data.zul";
    @Getter
    private String       data;
    private Textbox      valData;
    
    public JsUtilsExt(String method, List<Object> params) {
        Component win = Executions.createComponents(zul, this, null);
        Components.addForwards(this, this, '$');
        Components.wireVariables(this, this, '$', true, true);
        invoke(method, params);
    }
    
    /**
     * 
     * 方法功能:
     *  .
     * @author: chenmq
     * @修改记录： 
     * ==============================================================<br>
     * 日期:2011-11-11 chenmq 创建方法，并实现其功能
     * ==============================================================<br>
     */
    public void onSetValue() {
        data = valData.getValue();
        Events.postEvent(ZkConstants.ON_GET_JS_DATA, this, data);
    }
    
    /**
     * 
     * 方法功能:
     *  调用外围系统弹出外围页面 并返回值 ..
     * @param url
     * @param width
     * @param height
     * @param mold
     * @author: chenmq
     * @修改记录： 
     * ==============================================================<br>
     * 日期:2011-11-16 chenmq 创建方法，并实现其功能
     * ==============================================================<br>
     */
    public void invoke(String method, List<Object> params) {
        StringBuffer sb = new StringBuffer();
        
        sb.append(method + "(");
        String temp = "";
        if (params != null && params.size() > 0) {
            for (Object obj : params) {
                temp += "'" + obj + "',";
            }
            temp = temp.substring(0, temp.length() - 1);
        }
        sb.append(temp);
        sb.append(" )");
        Clients.evalJavaScript(sb.toString());

    }
    
}
